import java.io.File;
import java.util.Scanner;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 刘远望
 * Date: 2025-06-13
 * Time: 18:32
 */
//示例1.扫描指定目录，并找到名称中包含指定字符的所有普通文件（不包含目录），并且后续询问用户是否要删除该文件
public class Demo11 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("请输入要搜索的目录：");
        String dir = scanner.next();

        File file = new File(dir);
        if (!file.isDirectory()) {
            System.out.println("你输入的不是目录");
            return;
        }

        System.out.println("请输入要删除的关键字");
        String keyword = scanner.next();

        //遍历目录
        scanDir(file, keyword);

    }

    private static void scanDir(File file, String keyword) {
        //1.列出目录下所有文件
        File[] files = file.listFiles();

        if (files == null) {
            //目录为空
            return;
        }

        //2.遍历文件
        for (File f : files) {
            //3.判断是否是普通文件
            if (f.isFile()) {
                //4.判断文件名是否包含关键字
                dealFile(f, keyword);
            }else {
                //5.如果是目录，递归调用
                scanDir(f, keyword);//n叉树递归调用
            }
        }

    }

    private static void dealFile(File f, String keyword) {
        //判断是否包含关键字
        if (f.getName().contains(keyword)) {
            System.out.println("发现文件：" + f.getAbsolutePath() + "是否要删除Y/N？");
            Scanner scanner = new Scanner(System.in);
            String input = scanner.next();
            if (input.equalsIgnoreCase("Y")) {//不区分大小写的比较
                //删除文件
                f.delete();
                System.out.println("文件已删除");
            }
        }
    }
}
